{
 "metadata": {
  "name": "RBC model"
 },
 "nbformat": 3,
 "worksheets": [
  {
   "cells": [
    {
     "cell_type": "code",
     "collapsed": true,
     "input": [
      "from dolo import *"
     ],
     "language": "python",
     "outputs": [],
     "prompt_number": 1
    },
    {
     "cell_type": "code",
     "collapsed": true,
     "input": [
      "model = yaml_import('../global_models/rbc.yaml')"
     ],
     "language": "python",
     "outputs": [],
     "prompt_number": 2
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "model"
     ],
     "language": "python",
     "outputs": [
      {
       "html": [
        "<table>\t<tr>",
        "\t\t<td> </td>",
        "\t\t<td>Equations </td>",
        "\t\t<td>Residuals </td>",
        "</tr>",
        "\t<tr>",
        "\t\t<td>transition </td>",
        "\t\t<td> </td>",
        "</tr>",
        "\t<tr>",
        "\t\t<td> </td>",
        "\t\t<td>$z_{t} = \\rho z_{t-1} + zbar \\left(- \\rho + 1\\right) + e_{z,t}$ </td>",
        "\t\t<td>0.0 </td>",
        "</tr>",
        "\t<tr>",
        "\t\t<td> </td>",
        "\t\t<td>$k_{t} = i_{t-1} + k_{t-1} \\left(- \\delta + 1\\right)$ </td>",
        "\t\t<td>-7.49400541622e-16 </td>",
        "</tr>",
        "\t<tr>",
        "\t\t<td>arbitrage </td>",
        "\t\t<td> </td>",
        "</tr>",
        "\t<tr>",
        "\t\t<td> </td>",
        "\t\t<td>$1 = \\beta \\left(\\frac{c_{t}}{c_{t+1}}\\right)^{\\sigma} \\left(- \\delta + rk_{t+1} + 1\\right)$ </td>",
        "\t\t<td>1.11022302463e-16 </td>",
        "</tr>",
        "\t<tr>",
        "\t\t<td> </td>",
        "\t\t<td>$- \\chi c_{t}^{\\sigma} n_{t}^{\\eta} + w_{t} = 0$ </td>",
        "\t\t<td>0.0 </td>",
        "</tr>",
        "\t<tr>",
        "\t\t<td>auxiliary </td>",
        "\t\t<td> </td>",
        "</tr>",
        "\t<tr>",
        "\t\t<td> </td>",
        "\t\t<td>$c_{t} = - i_{t} + k_{t}^{\\alpha} n_{t}^{- \\alpha + 1} z_{t}$ </td>",
        "\t\t<td>2.77555756156e-17 </td>",
        "</tr>",
        "\t<tr>",
        "\t\t<td> </td>",
        "\t\t<td>$rk_{t} = \\alpha z_{t} \\left(\\frac{n_{t}}{k_{t}}\\right)^{- \\alpha + 1}$ </td>",
        "\t\t<td>-6.93889390391e-18 </td>",
        "</tr>",
        "\t<tr>",
        "\t\t<td> </td>",
        "\t\t<td>$w_{t} = z_{t} \\left(\\frac{k_{t}}{n_{t}}\\right)^{\\alpha} \\left(- \\alpha + 1\\right)$ </td>",
        "\t\t<td>0.0 </td>",
        "</tr>",
        "</table>"
       ],
       "output_type": "pyout",
       "prompt_number": 3,
       "text": [
        "{'covariances': [0.0015],",
        " 'equations': [z == rho*z(-1) + zbar*(-rho + 1) + e_z,",
        "  k == i(-1) + k(-1)*(-delta + 1),",
        "  1 == beta*(c/c(1))**sigma*(-delta + rk(1) + 1),",
        "  -chi*c**sigma*n**eta + w == 0,",
        "  c == -i + k**alpha*n**(-alpha + 1)*z,",
        "  rk == alpha*z*(n/k)**(-alpha + 1),",
        "  w == z*(k/n)**alpha*(-alpha + 1)],",
        " 'equations_groups': OrderedDict([('transition', [z == rho*z(-1) + zbar*(-rho + 1) + e_z, k == i(-1) + k(-1)*(-delta + 1)]), ('arbitrage', [1 == beta*(c/c(1))**sigma*(-delta + rk(1) + 1), -chi*c**sigma*n**eta + w == 0]), ('auxiliary', [c == -i + k**alpha*n**(-alpha + 1)*z, rk == alpha*z*(n/k)**(-alpha + 1), w == z*(k/n)**alpha*(-alpha + 1)])]),",
        " 'init_values': {c: -i + k**alpha*n**(-alpha + 1)*z,",
        "  i: delta*k,",
        "  k: n*(rk/alpha)**(-1/(-alpha + 1)),",
        "  n: 0.33,",
        "  rk: delta - 1 + 1/beta,",
        "  w: z*(k/n)**alpha*(-alpha + 1),",
        "  z: zbar},",
        " 'name': 'rbc',",
        " 'original_data': {'calibration': {'covariances': '[ [ 0.0015 ] ]\\n',",
        "   'parameters': {'alpha': 0.33,",
        "    'beta': 0.99,",
        "    'chi': 'w/c**sigma/n**eta',",
        "    'delta': 0.025,",
        "    'eta': 1,",
        "    'phi': 1,",
        "    'rho': 0.8,",
        "    'sigma': 1,",
        "    'zbar': 1},",
        "   'steady_state': {'c': 'z*k**alpha*n**(1-alpha) - i',",
        "    'i': 'delta*k',",
        "    'k': 'n/(rk/alpha)**(1/(1-alpha))',",
        "    'n': 0.33,",
        "    'rk': '1/beta-1+delta',",
        "    'w': '(1-alpha)*z*(k/n)**(alpha)',",
        "    'z': 'zbar'}},",
        "  'declarations': {'auxiliary': ['c', 'rk', 'w'],",
        "   'controls': ['i', 'n'],",
        "   'parameters': ['beta',",
        "    'sigma',",
        "    'eta',",
        "    'chi',",
        "    'delta',",
        "    'alpha',",
        "    'rho',",
        "    'zbar'],",
        "   'shocks': ['e_z'],",
        "   'states': ['z', 'k']},",
        "  'equations': {'arbitrage': ['1 = beta*(c/c(1))**(sigma)*(1-delta+rk(1))   | 0 <= i <= inf',",
        "    'w - chi*n**eta*c**sigma                  | 0 <= n <= inf'],",
        "   'auxiliary': ['c = z*k**alpha*n**(1-alpha) - i',",
        "    'rk = alpha*z*(n/k)**(1-alpha)',",
        "    'w = (1-alpha)*z*(k/n)**(alpha)'],",
        "   'transition': ['z = (1-rho)*zbar + rho*z(-1) + e_z',",
        "    'k = (1-delta)*k(-1) + i(-1)']}},",
        " 'parameters_ordering': [beta, sigma, eta, chi, delta, alpha, rho, zbar],",
        " 'parameters_values': {alpha: 0.33,",
        "  beta: 0.99,",
        "  chi: c**(-sigma)*n**(-eta)*w,",
        "  delta: 0.025,",
        "  eta: 1,",
        "  phi: 1,",
        "  rho: 0.8,",
        "  sigma: 1,",
        "  zbar: 1},",
        " 'shocks_ordering': [e_z],",
        " 'variables_groups': OrderedDict([('states', [z, k]), ('controls', [i, n]), ('auxiliary', [c, rk, w])]),",
        " 'variables_ordering': [z, k, i, n, c, rk, w]}"
       ]
      }
     ],
     "prompt_number": 3
    },
    {
     "cell_type": "code",
     "collapsed": true,
     "input": [
      "dr = approximate_controls(model, order=1)",
      "#dr = approximate_controls(model, order=2)"
     ],
     "language": "python",
     "outputs": [],
     "prompt_number": 40
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "from dolo.numeric.global_solve import global_solve",
      "dr_global = global_solve(model, maxit=20, n_s=4)"
     ],
     "language": "python",
     "outputs": [
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "-----------------------------------------------------",
        "|Iteration\t|\tStep\t\t\t|\tTime (s)\t|",
        "-----------------------------------------------------",
        "\t\t1\t|\t4.976532e-02\t|\t0.124223\t|\t4"
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "",
        "\t\t2\t|\t6.504790e-02\t|\t0.121824\t|\t4"
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "",
        "\t\t3\t|\t3.198843e-02\t|\t0.126593\t|\t4"
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "",
        "\t\t4\t|\t1.548028e-02\t|\t0.091409\t|\t3"
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "",
        "\t\t5\t|\t1.009189e-02\t|\t0.094271\t|\t3"
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "",
        "\t\t6\t|\t8.326782e-03\t|\t0.094958\t|\t3"
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "",
        "\t\t7\t|\t6.421066e-03\t|\t0.099820\t|\t3"
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "",
        "\t\t8\t|\t4.794954e-03\t|\t0.091722\t|\t3"
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "",
        "\t\t9\t|\t3.529648e-03\t|\t0.094658\t|\t3"
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "",
        "\t\t10\t|\t2.587704e-03\t|\t0.095244\t|\t3"
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "",
        "\t\t11\t|\t1.901973e-03\t|\t0.093510\t|\t3"
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "",
        "\t\t12\t|\t1.407995e-03\t|\t0.093451\t|\t3"
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "",
        "\t\t13\t|\t1.053376e-03\t|\t0.093505\t|\t3"
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "",
        "\t\t14\t|\t7.984920e-04\t|\t0.097430\t|\t3"
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "",
        "\t\t15\t|\t6.144629e-04\t|\t0.091705\t|\t3"
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "",
        "\t\t16\t|\t4.806487e-04\t|\t0.092275\t|\t3"
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "",
        "\t\t17\t|\t3.824511e-04\t|\t0.092984\t|\t3"
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "",
        "\t\t18\t|\t3.095952e-04\t|\t0.097937\t|\t3"
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "",
        "\t\t19\t|\t2.548589e-04\t|\t0.091022\t|\t3"
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "",
        "\t\t20\t|\t2.131607e-04\t|\t0.092589\t|\t3"
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "",
        "Elapsed: 1.98293304443",
        "   k               Psi(x)                || DPsi(x) ||    stepsize"
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "",
        "====================================================================",
        "********************* Output at starting point *********************",
        "0\t7.57288852881e-08\t0.00254421993574",
        "",
        "************************** Preprocessor ****************************",
        "1\t8.69412714121e-11\t0.00046983775213\t1"
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "",
        "Approximate solution found.",
        "************************** Main program ****************************"
       ]
      }
     ],
     "prompt_number": 41
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "k_bounds = dr_global.bounds[:,1]",
      "k_vec = linspace(k_bounds[0],k_bounds[1])",
      "s_vec = numpy.row_stack([k_vec*0+1, k_vec])"
     ],
     "language": "python",
     "outputs": [],
     "prompt_number": 42
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "x_vec_pert = dr(s_vec)",
      "x_vec_glob = dr_global(s_vec)"
     ],
     "language": "python",
     "outputs": [],
     "prompt_number": 43
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "c_vec_pert = x_vec_pert[0,:]",
      "c_vec_global = x_vec_glob[0,:]"
     ],
     "language": "python",
     "outputs": [],
     "prompt_number": 44
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "plot(k_vec, c_vec_pert,label='perturbation')",
      "plot(k_vec, c_vec_global, label='smolyak')",
      "xlabel('$k_t$')",
      "ylabel('$i_t$')",
      "legend()",
      "title('Investment')"
     ],
     "language": "python",
     "outputs": [
      {
       "output_type": "pyout",
       "prompt_number": 45,
       "text": [
        "<matplotlib.text.Text at 0x5c8fd10>"
       ]
      },
      {
       "output_type": "display_data",
       "png": "iVBORw0KGgoAAAANSUhEUgAAAY8AAAEbCAYAAAAibQiyAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzt3XlYVdX+x/E3KCoiIorzACYo4ACIgBOE5oAhac7imGlA\nJlpq92aaQ3W7lqVmZWgOKeRUqSVOoAERo0OOOFVEjokoCogirN8fXs8vUhMUzj7A9/U8PA/n7L32\n/hzgnC9rrT0YKaUUQgghRDEYax1ACCFE2SPFQwghRLFJ8RBCCFFsUjyEEEIUmxQPIYQQxSbFQwgh\nRLFJ8RAVgo2NDXv27NFs33v37tVk36tXr8bT01OTfYvyTYqHqBCMjIwwMjLSbN9yOpUob6R4iApD\nKcXq1avp2rUr8+bNo3Hjxvj4+BAfHw/Ahg0bcHNzK9Rm4cKF9OvXD4A7d+6wceNGunfvjrOzMytW\nrOD27dsA5OTkMH78eGxsbKhTpw5PP/00SilGjRpFWloafn5+mJubs2DBAlJTUzE2Nubrr7/G3t6e\n5s2bs27dOlJSUujatSvNmzdn8eLFhXLExsYyYsQImjdvzty5c0lPT9ctMzY2JiwsDGdnZ2xtbVm4\ncCEAKSkpBAUFER8fj7m5ObVr1y61n62ogJQQFYCNjY3as2ePWrVqlapSpYqaO3euysjIULNnz1Zd\nu3ZVSimVnZ2tzM3N1enTp3XtOnTooDZs2KCUUmrx4sWqe/fu6ujRo+rMmTPK29tbLVu2TCml1Cef\nfKL8/f1VZmamunPnjoqNjb1v3/f89ttvysjISPn7+6tz586pVatWKTMzM+Xr66t+/vlndejQIVWz\nZk2VlpamlFLq0KFDqkmTJioiIkJlZGSoSZMmKX9/f932jIyMVPfu3VVKSorav3+/Mjc3V2fOnFFK\nKbV69Wrd6xOiJEnPQ1Q4ZmZmzJw5E0tLSwICAkhMTCQ7O5vq1avTr18/1q1bB8Dp06c5efIkzz33\nHAAbN27k7bffpnXr1rRo0YLJkyezZcsWAAoKCkhPT+fcuXNUqlSJLl26PDLHtGnTaNSoESNHjkQp\nRe/evXFycqJdu3Z4eHjo5mg2bNhAUFAQPXr0wNLSktmzZ7N7927y8/N125o4cSL29va0b9+ezp07\nExERASDDZaLUSPEQFU7r1q0xNr77p9+wYUPu3LnDpUuXAPD399cVj6+++ornn3+eatWqkZ2dTVxc\n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\nXly4cIFPP/0UW1tbunfvrrvHBkBGRgbz58/Hzs6OQYMG6UY67rnXa/D19eWTTz4ptKxdu3Zs3boV\ngMmTJ9OsWTPq169PQEBAocuz/1VeXh7Dhw9n0KBButvmasXb27vQZ2Vx6bV4uLm5ceLECd3jY8eO\n0bFjx/vWu3cP4u+++45a/zvNOikpiY4dO+ruAzx48OBCN3ipSO71QsIGhnKieTDNJo+m7+Cr/Pe/\n8JebiwlRbqWnpzNnzhzWrFlDZmYmu3fvxsbGBoBvv/0Wd3d3UlJSsLS05JlnnuHMmTMkJibSvXt3\n3njjDd12Xn31VQ4cOMAPP/yAv78/AwYMIDU1Vbf8Xq9h7NixhIaG6p4/dOgQ58+f142auLu7c+jQ\nIU6ePImFhQUTJ068L3Nubi79+/fH1NSUTZs2YWJiUgo/GT160smX4ro3Yf7bb789cML8999/V7a2\ntiohIaHQ85mZmapFixbqypUrKjc3V/n5+anIyMj7tq/BS9LUjVs31MTwiarB+42VY79w1aOHUufP\na51KlCeG+J5KT09XderUUdu2bVO3b9/WPT979mzVrl073ePQ0FBVuXJldfXqVaWUUmfPnlXVqlVT\nubm56s6dO6pOnTrq5MmTuvVHjBihPvroI9227k1037x5U1laWuruDT516lQ1ceLEB2a7fv26MjMz\n0322zZkzRz333HPKy8tLTZ48uQR/Co/nYb/P4v6e9TrnAbBo0SICAgLIy8sjODgYKysrQkJCAAgI\nCGDevHlkZGQQGBgIgImJCUlJSdSsWZOZM2fy/PPPk5OTg4+PD926ddN3fINTo0oNPnn2k7tzISbj\nSL/WDeeOC1n9uQV9+midTlQERnNLZkJYzS763ECdOnVYu3YtH374IWPGjGHkyJG8+eabQOHbwdav\nX58mTZroRjDq16/PrVu3uHLlChkZGdy6dYuWLVvq1nd1deXHH3/k1VdfLbS/atWqMWTIENauXcvs\n2bNZv34933zzjW756tWr2bRpE0lJSdy5c4ebN29y5MgRunXrhlKKhIQE7ty5o7vHR7lQAoXMoJTD\nl1Rk13Ovq8Btgaree02VVced6tVXlcrN1TqVKOsM/T116dIl9dxzz6lp06apOXPmFDosNiIiQtnY\n2Oge5+XlKSMjI3Xu3DmVl5en6tSpo06cOKFb7u/vrxYuXKiUuv8Q27i4OGVra6t2796t7OzsdM+n\n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\n"
      }
     ],
     "prompt_number": 45
    }
   ]
  }
 ]
}